通过绑定一个MetricRepository来实现指标服务。MetricRepository
负责存储和追溯指标信息。Spring Boot提供一个InMemoryMetricRepository
和一个RedisMetricRepository
(默认使用in-memory仓库),不过你可以编写自己的MetricRepository
。MetricRepository
接口实际是MetricReader
接口和MetricWriter
接口的上层组合。具体参考Javadoc
没有什么能阻止你直接将MetricRepository
的数据导入应用中的后端存储,但我们建议你使用默认的InMemoryMetricRepository
(如果担心堆使用情况,你可以使用自定义的Map实例),然后通过一个scheduled export job填充后端仓库(意思是先将数据保存到内存中,然后通过异步job将数据持久化到数据库,可以提高系统性能)。通过这种方式,你可以将指标数据缓存到内存中,然后通过低频率或批量导出来减少网络拥堵。Spring Boot提供一个Exporter
接口及一些帮你开始的基本实现。